'use strict'

process.chdir(__dirname);
const titbit=require('titbit');
const fs=require('fs');
//引入数据库
const pg=require("pg");
const dbconfig=require("./dbconfig.js");
const wxkey=require('./wxkey.js');
const tbloader=require('titbit-loader');
//使用HTTP/1.1的客户端
const {httpcli}=require('gohttp');
let token=require('titbit-token');
//初始化数据库连接
let psql = new pg.Pool(dbconfig);


let tok=new token({
    //token有效期，单位是秒
    expires:3600,
    //必须是32位字母数字
    key:'1qaz2wasdfghjklkjhgfdsaqwertyuio',
    //必须是16位字母数字
    iv:'9io08u7y6t5r4e3w'
})


try{
    fs.accessSync('./images')
}catch(err){
    fs.mkdirSync('./images')
}

let cert_path='/usr/local/share'

const app=new titbit({
    //开启调试模式，会输出错误信息
    debug:true,
    globalLog:true,//全局日志
    // http2:true
    cert:`${cert_path}/wx.xxmtcds.top.pem`,
    key:`${cert_path}/wx.xxmtcds.top.key`,
})


let tb=new tbloader();

tb.init(app);

//在app.service对象上添加了一个属性。
app.addService('tok',tok);
app.addService('psql',psql);

app.addService('imagePath',`${__dirname}/images`)

//c就是context
app.get('/',async c=>{
    c.send('ok');
})

/**—————————————content路由——————————————————— */

//转移至content.js
//小程序中有一个删除函数

/**—————————————content路由 -END——————————————————— */

app.get('/upload',async c=>{
    await c.helper.pipe('./upload.html',c.reply);
});


app.get('/mp-login/:code',async c=>{
    // c.send(c.param)
    let auth_url=`https://api.weixin.qq.com/sns/jscode2session`
        +`?appid=${wxkey.appid}`
        +`&secret=${wxkey.secret}`
        +`&js_code=${c.param.code}`
        +`&grant_type=authorization_code`


    let ret=await httpcli.get(auth_url)
        .then(res=>{
            // return res.text()
            return res.json()
        })

    // c.send(ret)
    c.send(tok.make(ret));
})




//监听1234端口运行服务
app.run(2222);
